From: Jeroen van der Heijden Date: Wed, 16 May 2018 11:55:10 +0000 (+0200) Subject: solved compiled warnings, issue #96 X-Git-Tag: archive/raspbian/2.0.44-1+rpi1~1^2~3^2~9^2~36 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=94d64e226efef7a535f57bfbc9d1939bb0bc8076;p=siridb-server.git solved compiled warnings, issue #96 --- diff --git a/src/siri/db/query.c b/src/siri/db/query.c index c170eaa1..a50311ad 100644 --- a/src/siri/db/query.c +++ b/src/siri/db/query.c @@ -1016,6 +1016,7 @@ static int QUERY_rebuild( } return 0; } + /* FALLTHRU */ /* no break */ default: { diff --git a/src/siri/db/re.c b/src/siri/db/re.c index 4d666544..18fde412 100644 --- a/src/siri/db/re.c +++ b/src/siri/db/re.c @@ -42,6 +42,7 @@ int siridb_re_compile( case 'i': options |= PCRE2_CASELESS; len--; + /* FALLTHRU */ /* no break */ case '/': pattern[len] = '$'; diff --git a/src/siri/db/server.c b/src/siri/db/server.c index 0e30b40d..3de59181 100644 --- a/src/siri/db/server.c +++ b/src/siri/db/server.c @@ -891,6 +891,7 @@ int siridb_server_drop(siridb_t * siridb, siridb_server_t * server) #endif pool->server[0] = pool->server[1]; pool->server[0]->id = 0; + /* FALLTHRU */ /* no break */ case 1: pool->server[1] = NULL; diff --git a/src/siri/parser/listener.c b/src/siri/parser/listener.c index 2affffa3..7a64bc02 100644 --- a/src/siri/parser/listener.c +++ b/src/siri/parser/listener.c @@ -5638,6 +5638,7 @@ static void master_select_work(uv_work_t * work) { case -1: sprintf(query->err_msg, "Memory allocation error."); + /* FALLTHRU */ /* no break */ case 1: query->flags |= SIRIDB_QUERY_FLAG_ERR; diff --git a/src/siri/siri.c b/src/siri/siri.c index 9b4b9ddb..ad8d8eef 100644 --- a/src/siri/siri.c +++ b/src/siri/siri.c @@ -17,6 +17,9 @@ * siri->siridb_list : read (lock) write (not allowed) * */ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif #include #include #include @@ -248,7 +251,7 @@ static int SIRI_load_databases(void) { DIR * db_container_path; struct dirent * dbpath; - char buffer[SIRI_PATH_MAX]; + char * buffer; if (!xpath_is_dir(siri.cfg->default_db_path)) { @@ -279,16 +282,21 @@ static int SIRI_load_databases(void) continue; } - snprintf(buffer, - SIRI_PATH_MAX, + if (asprintf( + &buffer, "%s%s/", siri.cfg->default_db_path, - dbpath->d_name); + dbpath->d_name) < 0) + { + /* allocation error occurred */ + log_critical("Could not allocate space for database path"); + continue; + } if (!siridb_is_db_path(buffer)) { /* this is not a SiriDB database directory, files are missing */ - continue; + goto next; } if (siri.siridb_list->len == MAX_NUMBER_DB) @@ -298,13 +306,15 @@ static int SIRI_load_databases(void) "are allowed on a single SiriDB process.", dbpath->d_name, MAX_NUMBER_DB); - continue; + goto next; } if (siridb_new(buffer, 0) == NULL) { log_error("Could not load '%s'.", dbpath->d_name); } +next: + free(buffer); } closedir(db_container_path); diff --git a/src/strextra/strextra.c b/src/strextra/strextra.c index 356a7632..0a3f9601 100644 --- a/src/strextra/strextra.c +++ b/src/strextra/strextra.c @@ -294,6 +294,7 @@ double strx_to_double(const char * src, size_t len) break; case '+': pt++; + /* FALLTHRU */ /* no break */ default: convert = 1.0;